There are many systems that use motion estimation methods. In certain systems for processing video or film images, the actual image rate (the number of images per second) is not sufficient for a quality image. Consequently, additional images are generated. It may be advantageous to generate such additional images by applying a method of estimating the motion of the objects in the actual images.
Such methods are conventionally also used in video data compression systems, such as systems based on the MPEG standard. Such systems are used to reduce the quantity of image data to be transmitted or stored, by compressing this data so as to allow it to be rapidly transferred to digital networks or even to telephone lines, or to allow it to be recorded on digital media. In practice, only certain reference images are encoded, and motion vectors are generated that encode the motion of objects between the encoded images and the suppressed images. The encoded images and the motion vectors are transmitted and then, on the receive side, the missing intermediate images are deduced from the motion vectors.
The field to which the present invention is particularly suited is that of data processing systems that include an entity provided with an image sensor, with the recorded images being processed in order to determine the motion of the entity.
Data processing systems are known in which a computer is connected to a mouse. Such systems are based on detecting the movements of the mouse. When the mouse is an optical mouse, the movement of the mouse is generally detected on the basis of data captured by a video sensor or another type of sensor that is fixed to the optical mouse.
Such sensors deliver a digital signal in the form of an image sequence captured during displacement of the mouse. This digital signal is then processed so as to deduce the movement of the mouse therefrom.
In general, the mouse is moved over a suitable surface and the video sensor fixed to the mouse captures images of this surface during its movement. The movement of the mouse can then be reconstructed from the relative positions of the successive images that were captured. An image sequence is therefore generated from the image sequence received from the sensor, with the relative position of the mouse being represented on each image of the sequence thus generated. Then, from the relative displacement of the mouse that corresponds to two successive images, the displacement that the mouse pointer on the computer screen should be given is deduced.
However, such image processing is complex. It requires massive calculations and is consequently expensive.
To be able to display the pointer of the optical mouse more easily, it is advantageous to apply a motion estimation method in such a context.
In general, with such a method, the images to be processed are divided into blocks of pixels and it is assumed that each block is substantially identical from one image to the other, even if this block has moved between two images.
Such a method can be used to estimate the motion of a given block of pixels from one image to a following image. This block-by-block motion estimation is generally represented by a motion vector which is associated with each of the blocks of an image. This vector represents the motion of a block of pixels from one image to another. It has a vertical component and a horizontal component that represent the displacement that has to be applied to a block of a preceding image in order to arrive at the position of a substantially identical block of pixels in a following image.
If the image sequence to be processed comes from an image sensor moving over a given surface, the motion of all the blocks of pixels of each image to be processed can be represented by a single motion vector.
FIGS. 1A and 1B illustrate a definition of a motion vector. In FIG. 1A, a sequence of two images is shown—a first image 101 is followed by a second image 102. The position of the mouse is shown in each of these images. Thus, in the first image 101 the mouse is in position 103, and in the second image the mouse is in position 104.
In FIG. 1B, the images 101 and 102 are superposed in such a way that the respective positions of the mouse coincide. The motion vector corresponding to such a displacement is shown by the arrow 105. Its horizontal and vertical components are called X and Y. Thus, the movement of the mouse between the image 101 and the image 102 may subsequently be represented by the motion vector 105. Thus, the image 101 may be associated with the motion vector 105 that allows the position of the mouse to be found in the following image 102.
In order to estimate the associated movement of the mouse in a current image, the procedure is generally based on motion vectors previously associated with preceding images in the image sequence. Candidate vectors, that is to say vectors that can represent the movement of the mouse between two successive images, are then generated from such motion vectors. Next, the relevance of each of the candidate vectors is checked by well known mouse position correlation calculations. The candidate vector elected is the vector with the highest calculated correlation.
To summarize, for an image being processed, candidate vectors are generated and then a correlation of each of these candidate vectors is calculated so as to elect the candidate vector that has the best calculated correlation.
The term “processed images” refers to images for which a motion vector has been elected. The elected vector is then associated with the respective image.
To generate suitable candidate vectors, motion vectors are generally selected from among motion vectors associated beforehand with preceding images. To do this, each association of an image and the respective elected motion vector is stored in memory.
However, when the candidate motion vectors are not relevant, even if the one having the best correlation has been elected, such a system can diverge. Such a divergence often occurs following a sudden movement of the mouse.
Thus, the performance of devices that apply a motion estimation method is greatly dependent on the quality of the candidate motion vectors. Consequently, it is desirable to have available a method of generating candidate vectors that is effective and precise.